// 箭头函数相当于 省略了function 和
// 一个参数 包裹参数的（）和后面的{ retun xxx}  
// 两个参数的话，不能省略（） 以及多条语句的话，不能省略return

// 箭头函数如何优化了this???

x => {
    if (x > 0) {
        return x * x;

    } else {
        return - x * x;
    }
}

// 可变
(x, y, ...rest) => {

}

// 如果返回的是一个对象的话,为了避免语法冲突
x => ({ x, y })



// 使用箭头函数,避免了this
// var obj = {
//     birth: 1990,
//     getAge: function () {
//         var b = this.birth; // 1990
//         var fn = function () {
//             return new Date().getFullYear() - this.birth; // this指向window或undefined
//         };
//         return fn();
//     }
// };
// var that = this;


var obj = {
    birth: 1990,
    getAge: function () {
        var b = this.birth; // 1990
        var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象
        return fn();
    }
};

// 下面一个为啥还是NaN
// var obj = {
//     birth: 1990,
//     getAge: function (year) {
//         var b = this.birth; // 1990
//         var fn = (y) => y - this.birth; // this.birth仍是1990
//         return fn.call({birth:2000}, year);
//     }
// };

console.log(obj.getAge()); // 25



// 作业
var arr = [10, 20, 1, 2];
arr.sort((a, b) => a - b);
console.log(arr);
